package com.example.tliaswebmanagement.service.impl;

import com.example.tliaswebmanagement.entity.JobOption;
import com.example.tliaswebmanagement.mapper.EmpMapper;
import com.example.tliaswebmanagement.service.ReportService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

@Service
public class ReportServiceImpl implements ReportService {

    private final EmpMapper empMapper;

    @Autowired
    public ReportServiceImpl(EmpMapper empMapper) {
        this.empMapper = empMapper;
    }

    @Override
    public JobOption getEmpJobData() {
        //先获取每行数据集合，每个map集合存储的是一行数据，其中key对应列名，value对应列值，
        // 如果有n列，则每一个map集合有n个元素，这n个元素组成一行数据，
        //例如这个例子，第一个map集合里 ，第一个键值对为pos->班主任,第二个键值对为num->2,这两个键值对组成一行数据返回
        List<Map<String,Object>> list=empMapper.countEmpJobData();
        //将集合不同列数据分开传输
        List<Object> jobList=list.stream().map(map->map.get("pos")).toList();
        List<Object> dataList=list.stream().map(map->map.get("num")).toList();

        return new JobOption(jobList,dataList);
    }

    @Override
    public List<Map<String,Object>> getEmpGenderData() {
        return empMapper.countEmpGenderData();
    }
}
